package com.bole.controller;

import com.bole.dao.ImgTypeDao;
import com.bole.dto.car.TbCarDto;
import com.bole.dto.content.DicContentTypeDto;
import com.bole.dto.img.DicImgTypeDto;
import com.bole.dto.user.DicCarSpecDto;
import com.bole.pojo.DicContentTypeDo;
import com.bole.pojo.DicImgTypeDo;
import com.bole.pojo.TbCarDo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("imgtype")
@Api(value = "图片类型管理")
public class ImgTypeController {
    @Autowired
    private ImgTypeDao imgTypeDao;

    @GetMapping("getImgTypeInfo")
    @ApiOperation(value = "查询图片类型")
    public List<DicImgTypeDto> getImgTypeInfo() {
        List<DicImgTypeDo> all = imgTypeDao.findAll();
        ArrayList<DicImgTypeDto> imgTypeDtoArrayList = new ArrayList<>();
        for (DicImgTypeDo dicImgTypeDo : all) {
            DicImgTypeDto dicImgTypeDto = new DicImgTypeDto();
            BeanUtils.copyProperties(dicImgTypeDo, dicImgTypeDto);
           imgTypeDtoArrayList.add(dicImgTypeDto);
        }
        return imgTypeDtoArrayList;

    }


    @PostMapping("saveImgTypeInfo")
    @ApiOperation(value = "保存图片类型")
    @ApiImplicitParam(name = "dicImgTypeDo",value = "类型对象",required = true,dataTypeClass = DicImgTypeDto.class)
    public void saveContentCateInfo(@RequestBody DicImgTypeDo dicImgTypeDo) {
        DicImgTypeDo imgTypeDo = imgTypeDao.save(dicImgTypeDo);
       DicImgTypeDto dicImgTypeDto =  new DicImgTypeDto();
        BeanUtils.copyProperties(imgTypeDo,dicImgTypeDto);
    }

    @PostMapping("toUpdate")
    @ApiOperation(value = "类型回显")
    @ApiImplicitParam(name = "id",value = "类型id",required = true,dataTypeClass = Integer.class)
    public DicImgTypeDto toUpdate(@RequestParam("id") Integer id) {
        DicImgTypeDo dicImgTypeDo = imgTypeDao.findById(id).get();
        DicImgTypeDto dicImgTypeDto =  new DicImgTypeDto();
        BeanUtils.copyProperties(dicImgTypeDo,dicImgTypeDto);
        return dicImgTypeDto;
    }

    @PostMapping("updateImgTypeInfo")
    @ApiOperation(value = "修改分类信息")
    @ApiImplicitParam(name = "dicImgTypeDo",value = "类型对象",required = true,dataTypeClass = DicImgTypeDo.class)
    public void updateContentCateInfo(@RequestBody DicImgTypeDo dicImgTypeDo) {
        DicImgTypeDo imgTypeDo = imgTypeDao.save(dicImgTypeDo);
        DicImgTypeDto dicImgTypeDto =  new DicImgTypeDto();
        BeanUtils.copyProperties(imgTypeDo,dicImgTypeDto);
    }

    @PostMapping("deleteBatch")
    @ApiOperation(value = "批量删除")
    @ApiImplicitParam(name = "idss",value = "类型对象",required = true,dataTypeClass = Integer.class)
    public void deleteBatch(@RequestParam("idss") List<Integer> idss) {
        imgTypeDao.deleteBatch(idss);
    }



    @PostMapping("getTypeById")
    @ApiOperation(value = "查询")
    @ApiImplicitParam(name = "id",value = "id",required = true,dataTypeClass = Long.class)
    public DicImgTypeDto getTypeById(@RequestParam("id") Long id) {
        DicImgTypeDo imgTypeDo  = imgTypeDao.findTypeById(id);
        DicImgTypeDto imgTypeDto = new DicImgTypeDto();
        BeanUtils.copyProperties(imgTypeDo,imgTypeDto);
        return imgTypeDto;
    }

}
